var snp=1;
var mut=1;

/*affichage/masquage/remise à zéro des champs quand case cochée/décochée pour age*/
function afficheAge(age){
	if(age.checked==true){
		document.getElementById("age").style.display="inline";
	}
	else{
		document.getElementById("age").style.display="none";
		document.getElementById("signe_age").value="none";
		document.getElementById("input_age").value="";
		document.getElementById("type_age").value="none";
	}
}

/*affichage/masquage/remise à zéro des champs quand case cochée/décochée */
function afficheSelect(temp){
	if(temp.checked==true){
		document.getElementById(temp.value).style.display="inline";
	}
	else{
		document.getElementById(temp.value).style.display="none";
		if(document.getElementById("choix_"+temp.value)){document.getElementById("choix_"+temp.value).value="none";}
		if(document.getElementById("select_"+temp.value)){document.getElementById("select_"+temp.value).value="none";}
		if(temp.value=="tissu"){
			document.getElementById("ListeGroupe").value="none";
			document.getElementById("ListeTissu").value="none";
			document.getElementById("ListeBoite").value="none";
		}
		//else if(temp.value=="irm"){	document.getElementById('combirm').style.display="none";}
		else if(temp.value=="mutation" || temp.value=="snp"){supprimerSpan(temp.value);}
	}
}

function describeObj(o, limit) {
	if (typeof optional == "undefined") {
		limit = 50;
	}
	var strO = '';
	var i=0;
	for (var key in o)
	{
		if ((i % limit)==0 && i>0) {
			alert(strO);
			strO = '';
		}
		strO += i+" : "+key+" => "+o[key]+"\n";
		i++;
	}
	if (strO.length > 0) {
		alert(strO);
	}	
}

function showIrmSearchFormExplanation(el) {
	
	
	
	outputElement = document.getElementById("irmSentence");
	var in_vivo_quantity_include = document.getElementsByName("in_vivo_quantity_include_one");
	
	//alert($("input[name=in_vivo_quantity_include_one]").value);
	
	/*var select_irm_include = document.getElementsByName("select_irm_include");
	var select_irm_include_inVivo = document.getElementsByName("select_irm_include_inVivo");
	
	var inVivoOneInclude = (in_vivo_quantity_include[0].value=="one");
	var inVivoManyInclude = (in_vivo_quantity_include[1].value=="many");
	var exVivoInclude = (select_irm_include[1].value=="ex_vivo_include");
	
	var in_vivo_quantity_exclude = document.getElementsByName("in_vivo_quantity_exclude");
	var select_irm_exclude = document.getElementsByName("select_irm_exclude");
	
	var inVivoOneExclude = (in_vivo_quantity_exclude[0].value=="one");
	var inVivoManyExclude = (in_vivo_quantity_exclude[1].value=="many");
	var exVivoExclude = (select_irm_exclude[1].value=="ex_vivo_include");
	*/
	console.log(el.name);
		
	if (el.name == "select_irm_only") {
		$('[name="select_irm_include_inVivo"]').prop("checked", false);
		$('[name="select_irm_include_exVivo"]').prop("checked", false);
	}
	
	
	
	/*var output = '';
	
	if (inVivoOneInclude) {
		output+='un test irm in vivo ';
		if (inVivoManyInclude)
			output+="et ";
	}
	if (inVivoManyInclude) {
		output+="plusieurs tests irm in vivo";
	}
	outputElement.innerHTML = "animaux ayant effectué " + output;*/
}

/*suppression des champs pour mutation/snp quand case décochée*/
function supprimerSpan(oCheck){
	if(oCheck=="mutation"){
		var parent = document.getElementById("mutation");
		while (parent.lastChild.tagName!="INPUT") {
			parent.removeChild(parent.lastChild);
		}
		mut=1;
		document.getElementById("mutnb").value="";
	}
	else if(oCheck=="snp"){
		var parent = document.getElementById("snp");
		while (parent.lastChild.tagName!="INPUT") {
			parent.removeChild(parent.lastChild);
		}
		document.getElementById("snpnb").value=snp-1;
		snp=1;
	}
}


/*affichage/masquage/remise à zéro des champs quand case cochée/décochée pour date*/
function afficheChamp(temp){
	if(temp.checked==true){
		document.getElementById("date_test").style.display="inline";
	}
	else{
		document.getElementById("date_test").style.display="none";
		document.getElementById("datepicker").value="";
	}
}

/*requete de tissus/cellules */
function request(oSelect) {
	var value = oSelect.options[oSelect.selectedIndex].value;
	
	if(value!="none" && value!="tous"){
		var var1 = encodeURIComponent(value);
		var xhr = getXMLHttpRequest();

		xhr.onreadystatechange = function() {
			if (xhr.readyState == 4 && (xhr.status == 200 || xhr.status == 0)) {
				readData(xhr.responseXML,"ListeTissu","tissuSelect");
			} 
		};
		 
		xhr.open("POST", "get_tissu_r.php", true);
		xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
		xhr.send("groupe_organe="+var1);
	}
	else{
		document.getElementById("tissuSelect").style.display="none";
		document.getElementById("tissuSelect").value="none";
		document.getElementById("type2").style.display="none";	
		document.getElementById("type2").value="none";		
	}
}
 
/* remplissage select à partir données récupérées dans base de données*/
function readData(oData,nomSelect,para) {
	var nodes = oData.getElementsByTagName("item");
	var oSelect = document.getElementById(nomSelect);
	var oPara = document.getElementById(para);
	var oOption, oInner;
	 
	oSelect.innerHTML = "";	
	ajouter_option(oSelect, "Sélection", "none");
	
	for (var i=0, c=nodes.length; i<c; i++) {
		var name = nodes[i].getAttribute("name");
		ajouter_option(oSelect,name,name);
	}
	
	if(nodes.length!=0){ oPara.style.display = "inline"; }		
	else{ oPara.style.display = "none"; }
	
	ajouter_option(oSelect, "Tous", "tous");
}

/* Ajout d'une option au select*/
function ajouter_option(select, nom, valeur){
	var option = document.createElement("option");
	var texte = document.createTextNode(nom);
	option.value = valeur;
	option.appendChild(texte);
	select.appendChild(option);
}

/* affichage de la boite quand le tissu a été selectionné*/
function afficherBoite(oSelect,oPara){
	var value = oSelect.options[oSelect.selectedIndex].value;;
	
	if(value!="none" && value!="tous"){		
		var var1 = encodeURIComponent(value);
		var xhr = getXMLHttpRequest();

		xhr.onreadystatechange = function() {
			if (xhr.readyState == 4 && (xhr.status == 200 || xhr.status == 0)) {
				readData(xhr.responseXML, "ListeBoite",oPara);
			} 
		};
		 
		xhr.open("POST", "get_boite_r.php", true);
		xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
		xhr.send("tissu="+var1);
	}
	else{
		document.getElementById("type2").style.display="none";
		document.getElementById("type2").value="none";
	}
}

/* combinaison des irm */
function afficheCombine(oSelect){
	var value=oSelect.options[oSelect.selectedIndex].value;;
	
	if(value=="tout"){	document.getElementById('combirm').style.display="inline";	}
	else{document.getElementById('combirm').style.display="none";}
}

/* combinaison des champs pour gene, test induction, test biologique et test comportemental */
function afficheCombi(oCheck){
	var name=oCheck.name;
	var check=document.getElementsByName(name);
	var temp='';
	if(name=="choix_gene[]"){temp=document.getElementById("combig");}
	else if(name=="choix_test_induction[]"){temp=document.getElementById("combii");}
	else if(name=="choix_test_biologique[]"){temp=document.getElementById("combib");}
	else if(name=="choix_Test_comportemental[]"){temp=document.getElementById("combic");}
	var cpt=0;
	var cpt2=0;
	
	if(check.length>2){
		for (var i=0; i<check.length;i++){
			if(check[i].value=="tous" && check[i].checked==true){cpt2++;break;}
			if(check[i].checked==true){	cpt++;}			
		}
	}
	if((cpt2==0 && cpt>1) || cpt2!=0){ //si deux cases au moins ont été cochées ou la case "tous"
		temp.style.display="inline";
	}
	else if(cpt2==0 && cpt<2){ //si une seule case ou aucune n'a été cochée
		temp.style.display="none";
	}
}

/* affichage des champs pour gene, test induction, test biologique et test comportemental */
function afficheCheck(temp){
	if(temp.checked==true){
		document.getElementById(temp.value).style.display="inline";
	}
	else{
		document.getElementById(temp.value).style.display="none";
		var check = document.getElementsByName("choix_"+temp.value+"[]");
		if(temp.value=="gene"){document.getElementById('combig').style.display="none";}
		else if(temp.value=="test_induction"){document.getElementById('combii').style.display="none";}	
		else if(temp.value=="test_biologique"){document.getElementById('combib').style.display="none";}	
		else if(temp.value=="Test_comportemental"){document.getElementById('combic').style.display="none";}
		for (var i=0; i<check.length;i++){
			check[i].checked=false;
		}	
	}
}

/*Pour mutations / snp */
function creerSpan(type){
	var span = document.createElement("span");
	if(type=="snp"){
		span.id=type+snp;
		document.getElementById("snpnb").value=snp;
		snp++;
		}
	else if(type=="mut"){
		span.id=type+mut;
		document.getElementById("mutnb").value=mut;
		mut++;
	}
	return span;
}	

/* ajout d'option au select */
function ajouterOption(nom, valeur,oSelect){
	var oOption = document.createElement("option");
	var oInner = document.createTextNode(nom);
	oOption.value = valeur;
	oOption.appendChild(oInner);
	oSelect.appendChild(oOption);
	return oSelect;
}

/* combinaison mutations/snp */
function creerCombi(doc,type){
	var span = document.createElement("span");	
	var texte = document.createTextNode("Combinaison des requêtes: ");
	var select = document.createElement("select");
	var temp;

	var br = document.createElement("br");
	span.appendChild(br);
	
	if(type=="mut"){
		span.id="combi_mut";
		select.name = "select_combi_mut";
		select = ajouterOption("Sélection","none",select);
		select = ajouterOption("Toutes les mutations ont été trouvées chez l'animal","deux",select);
		select = ajouterOption("Au moins une mutation a été trouvée chez l'animal","un",select);
		temp = document.getElementById("mut0");
	}
	if(type=="snp"){
		span.id="combi_snp";
		select.name = "select_combi_snp";
		select = ajouterOption("Sélection","none",select);
		select = ajouterOption("Tous les SNP ont été trouvés chez l'animal","deux",select);
		select = ajouterOption("Au moins un SNP a été trouvé chez l'animal","un",select);
		temp = document.getElementById("snp0");
	}
	span.appendChild(texte);
	span.appendChild(select);	
	doc.insertBefore(span,temp.nextSibling);
	
	return doc;
}

/*création du select pour choix de la requete mutation */
function creerChoix(span){
	var texte = document.createTextNode("Choisir un type: ");
	var select = document.createElement("select");
	var br = document.createElement("br");
	span.appendChild(br);
	
	select.name = "select_type_mut"+(mut-1);
	var mut1 = mut-1;
	select = ajouterOption("Sélection","none",select);
	select = ajouterOption("Type de mutation","type_mutation",select);
	select = ajouterOption("Localisation","localisation",select);
	select.onchange = function(){rechercheListeMut(span,select,mut1);};
	
	span.appendChild(texte);
	span.appendChild(select);
	
	return span;
}

/* création d'un élément span pour snp et mutation quand clic sur "ajouter" */
function ajoutSpan(bouton){	
	var id = bouton.id;
	var doc,span;
	if(id=="mut0"){
		doc = document.getElementById("mutation");
		span = creerSpan("mut");
		if(mut==3){
			doc = creerCombi(doc,"mut");
		}
		span = creerChoix(span);
	}
	else if(id=="snp0"){
		doc = document.getElementById("snp");
		span = creerSpan("snp");
		if(snp==3){
			doc = creerCombi(doc,"snp");
		}
		span = rechercheListeSNP(span);
		var br = document.createElement("br");
		span.appendChild(br);
	}
	
	doc.appendChild(span);
	
}

/* recherche des mutations en fonction des gènes sélectionnés s'il y en a et du type sélectionné précédemment */
function rechercheListeMut(span,select,mut1){
	var xhr = getXMLHttpRequest();
	var gene2 = rechercheGenes();
	
	xhr.onreadystatechange = function() {
		if (xhr.readyState == 4 && (xhr.status == 200 || xhr.status == 0)) {
			creerListeMut(xhr.responseXML,span,mut1);
		} 
	};
	var var1 = encodeURIComponent(select.value);
	var var2='';
	for(var i=0;i<gene2.length;i++){
		var2+="genes[]="+gene2[i]+"&";
	}
	xhr.open("POST", "liste_mut.php", true);
	xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
	xhr.send(var2+"type="+var1);
}

/* recherche des snp en fonction des gènes sélectionnés s'il y en a */
function rechercheListeSNP(span){
	var xhr = getXMLHttpRequest();
	var gene2 = rechercheGenes();
	
	xhr.onreadystatechange = function() {
		if (xhr.readyState == 4 && (xhr.status == 200 || xhr.status == 0)) {
			span = creerListeSNP(xhr.responseXML,span);
		} 
	};
	var var2='';
	for(var i=0;i<gene2.length;i++){
		var2+="genes[]="+gene2[i];
		if(gene2[i]!=gene2.length-1 && gene2.length>1){
			var2+="&";
		}
	}
	
	xhr.open("POST", "liste_snp.php", true);
	xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
	if(var2!=''){xhr.send(var2);}
	else{xhr.send();}
	return span;
}

/*création du select pour les mutations */
function creerListeMut(oData,span,mut1){
	var nodes = oData.getElementsByTagName("item");
	var oSelect = document.createElement("select");
	oSelect.name="select_liste_mut"+mut1;

	oSelect = ajouterOption("Sélection","none",oSelect);
	for (var i=0; i<nodes.length; i++) {
		var name = nodes[i].getAttribute("name");
		oSelect=ajouterOption(name,name,oSelect);
	}
	
	var texte = document.createTextNode("Choisir la mutation: ");

	span.appendChild(texte);
	span.appendChild(oSelect);	
	return span;
}

/*création du select pour les snp */
function creerListeSNP(oData,span){
	var nodes = oData.getElementsByTagName("item");
	var oSelect = document.createElement("select");
	oSelect.name="select_liste_snp"+(snp-1);

	oSelect = ajouterOption("Sélection","none",oSelect);
	for (var i=0; i<nodes.length; i++) {
		var name = nodes[i].getAttribute("name");
		oSelect=ajouterOption(name,name,oSelect);
	}
	
	var texte = document.createTextNode("Choisir le SNP: ");

	span.appendChild(texte);
	span.appendChild(oSelect);	
}

/* fonction qui regarde si une valeur est dans un tableau */
function contains(a, obj) {
    for (var i=0; i<a.length; i++) {
        if (a[i] === obj) {
            return true;
        }
    }
    return false;
}

/*recherche des gènes si la case a été cochée */
function rechercheGenes(){
	var genes = document.getElementsByName("choix_gene[]");
	var cpt=0;
	var cpt2=0;
	var gene2=new Array();
	
	//récupération des genes cochés s'il y en a
	for(var i=0;i<genes.length;i++){
		if(genes[i].value=="tous" && genes[i].checked==true){
			for(var j=0;j<genes.length;j++){
				if(genes[j].value!="tous"){
					gene2.push(encodeURIComponent(genes[j].value));
				}
			}
			break;
		}
		else if(genes[i].checked==true){	
			gene2.push(encodeURIComponent(genes[i].value));
		}
	}
	return gene2;
}

$( document ).ready(function() {
  
});
